<?php
/**
 * 問い合わせ APIベースモデル<br />
 *
 * 問い合わせ APIベースモデル
 *
 * @package apamanshop
 * @author shibutani-y@systemsoft.co.jp
 * @copyright コピーライト(要確認)
 */
abstract class Inquiry_Model_Apibase extends Apm_Model_Base{

    /**
     * データベースに対してINSERT,UPDATE,DELETEを実行する<br>
     *
     * @param string $sql SQL文
     * @param array $db_params バインド変数
     * @param connection $db DBコネクション
     * @return int 処理件数
     */
    protected function dbExecQuery($sql, $db_params = "", $db)
    {
        __log_debug(__FILE__, __LINE__, __METHOD__, '---------->>>');
        if(empty($db_params)){
            $result = $db->query($sql);
        }
        else{
            $result = $db->query($sql, $db_params);
        }

        $profiler = $db->getProfiler();
        __log_debug(__FILE__, __LINE__, __METHOD__, 'クエリ実行所要時間 = '.$profiler->getTotalElapsedSecs());
        __log_debug(__FILE__, __LINE__, __METHOD__, '----------<<<');

        return $result->rowCount();
    }

	/**
	 * データ登録時のVALUEとNULLを切り分け文字列を返却する
	 *
	 * @param string $value 対象データ
	 * @param string $mode  空文字をNULLにするか
	 *                       0:NULLにしない(空文字を返却）
	 *                       1:NULLにする
	 * @return 実行結果
	 */
	protected function convertDBValue($value,$mode = 1)
	{

		$result = "";

		// 文字列がNULLまたは空文字の場合
		if (Apm_Otheritems::IsNullOrEmpty($value))
		{
			if ($mode == 1) {
				$result = 'NULL';
			} else {
				$result = "'" . $value . "'";
			}
		} else {
			$result = "'" . $value . "'";
		}
		return $result;
	}

	/**
	 * TOIAWASE_SEQ取得
	 *
	 * @return int TOIAWASE_SEQ取得
	 */
	public function GetToiawaseSEQ($db = "")
	{
		$db_params = array();
		$sql = "SELECT SEQ_TOIAWASE.NEXTVAL AS SEQ_NO FROM DUAL";
		$result = $this->dbGetList($sql, $db_params, $db);
		return $result;
	}

	/**
	 * AOS店舗チェック1
	 * RENKEI_TENPO_WORKテーブルの確認を行う
	 *
	 * @param string $shopCd 店舗コード
	 *
	 * @return 取得したデータ
	 */
	public function JdgAosShopChk1($shopCd,$db ="")
	{
		$sql = "";
		$db_params = array();

		$sql .= "SELECT ";
		$sql .= "NVL(COUNT(*),0) AS CNT ";
		$sql .= "FROM RENKEI_TENPO_WORK ";
		$sql .= "WHERE TENPO_CD = :shopCd ";
		$sql .= "AND TENPO_CD <> '00000002' ";
		$sql .= "AND IKOU_FLAG = 1 ";
		$sql .= "AND TO_CHAR(IKOU_DATE, 'YYYY/MM/DD') <= TO_CHAR(SYSDATE, 'YYYY/MM/DD') ";

		$db_params['shopCd'] = $shopCd;

		$result = $this->dbGetList($sql, $db_params,$db);
		return $result;
	}

	/**
	 * AOS店舗チェック2
	 * M05TENPO_INFOテーブルの確認を行う
	 *
	 * @param string $shopCd 店舗コード
	 *
	 * @return 取得したデータ
	 */
	public function JdgAosShopChk2($shopCd,$db = "")
	{
		$sql = "";
		$db_params = array();

		$sql .= "SELECT ";
		$sql .= "NVL(M05_SHINOPE_START_DATE,'') AS M05_SHINOPE_START_DATE ";
		$sql .= "FROM M05TENPO_INFO ";
		$sql .= "WHERE M05_TENPO_CD = :shopCd ";

		$db_params['shopCd'] = $shopCd;

		$result = $this->dbGetList($sql, $db_params,$db);
		return $result;
	}

	/**
	 * 全こだわり情報取得
	 *
	 * @return こだわり情報
	 */
	public function GetKodawari()
	{
		$sql = "";
		$db_params = array();

		$sql .= "SELECT ";
		$sql .= " * ";
		$sql .= "FROM ";
		$sql .= " W74KODAWARI ";
		$sql .= "ORDER BY W74_KODAWARI_TYPE,W74_KODAWARI_ID";

		$result = $this->dbGetList($sql, $db_params);

		return $result;
	}

	/**
	 * AOSこだわりCD変換取得
	 *
	 * @return こだわり情報
	 */
	public function GetAosKodawari()
	{
		$sql = "";
		$db_params = array();
		$arr_kodawari = array();

		$sql .= "SELECT ";
		$sql .= "  W74_KODAWARI_ID ";
		$sql .= ", W74_AOS_PARAM";
		$sql .= "  FROM ";
		$sql .= " W74KODAWARI ";
		$sql .= " WHERE ";
		$sql .= "   W74_PRIORITY_NO is not null ";
		$sql .= "   AND W74_AOS_PARAM is not null ";

		$result = $this->dbGetList($sql, $db_params);
		if (!empty($result)) {
			foreach ($result as $val) {
				$arr_kodawari[$val['W74_KODAWARI_ID']] = $val['W74_AOS_PARAM'];
			}
		}

		return $arr_kodawari;
	}

}
?>
